package com.example.wechattakeaway.mapper;

import com.example.wechattakeaway.entity.MerOrder;
import com.example.wechattakeaway.vo.ResultVO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface MerOrderMapper {

    /*
    用户提交订单
    @param OrderCommitForm
    @return null
     */
    Integer UserCommit(MerOrder merOrder);

    /*
    用户支付，改变订单状态
    @param orderId
    @return null
     */
    Integer UserPayment(Integer orderId);

    /*
    商家确认，改变订单状态
    @param orderId
    @return null
     */
    Integer MerchantConfirm(Integer orderId);

    /*
    用户确认商品送达，改变订单状态
    @param orderId
    @return null
     */
    Integer UserConfirm(Integer orderId);

    /*
    用户或者商家取消订单
    @param orderId
    @return null
     */
    ResultVO OrderQuit(Integer orderId);

    /*
    根据订单id查询订单内容
    @param orderId
    @return orderVo
     */
    MerOrder SelectOrderById(Integer orderId);

    /*
    根据用户id，按时间倒叙查询订单
    @param userId
    @return order
     */
    List<MerOrder> SelectOrderByUser(Integer userId);

    /*
    根据商家id，倒叙查询时间订单
    @param merchantId
    @return order
     */
    List<MerOrder> SelectOrderByMerchant(Integer merchantId);

    /*
    根据订单id删除订单
    @param orderId
    @return null
     */
    Integer DeleteOrderById(Integer orderId);

    /**
     * 根据订单量降序排列
     * @return
     */
    List<Integer> SelectMerchantByOrderNum();

    /*
    根据商家类型，以及订单数量降序返回商家id列表
    @param MerchantType
    @return null
     */
    List<Integer> SelectByOrderNumAndType(String merchantType);

}